package com.example.demo.mapper;

import com.example.demo.entity.Application;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface ApplicationMapper {

    /**
     * 查询所有应用
     */
    List<Application> selectAll();

    /**
     * 根据ID查询应用
     */
    Application selectById(Integer id);

    /**
     * 插入应用
     */
    int insert(Application application);

    /**
     * 更新应用
     */
    int updateById(Application application);

    /**
     * 删除应用
     */
    int deleteById(Integer id);

    /**
     * 统计应用数量
     */
    long count();

    /**
     * 根据应用名称查询应用
     */
    Application selectByAppName(@Param("appName") String appName);

    /**
     * 根据应用英文名查询应用
     */
    Application selectByAppEnName(@Param("appEnName") String appEnName);
    
    /**
     * 根据应用名称模糊搜索应用
     */
    List<Application> selectByNameLike(@Param("name") String name);

    /**
     * 根据应用名称查询应用（排除指定ID）
     */
    Application selectByAppNameExcludeId(@Param("appName") String appName, @Param("id") Integer id);

    /**
     * 根据应用英文名查询应用（排除指定ID）
     */
    Application selectByAppEnNameExcludeId(@Param("appEnName") String appEnName, @Param("id") Integer id);
}